package com.xiliubit.cloudpicture.utils;

public class ColorTransformUtils {

    private ColorTransformUtils() {
        // 工具类不需要实例化
    }

    /**
     * 将数据万象的16进制数省略的0补全
     *  十六进制, 会省略前导零
     *   如 0ab0b0 -> ab0b0
     *
     * @param color 十六进制颜色
     * @return 标准的16进制颜色
     */
    public static String getStandardColor(String color) {
        //颜色扩展函数 修复缺零问题
        // 去除可能存在的0x前缀
        String input = color.startsWith("0x") ? color.substring(2) : color;
        int length = input.length();
        // 长度为6直接返回
        if (length == 6){
            return color;
        }
        // 长度为3直接返回
        if (length == 3) {
            return "0x000000";
        }

        int index = 0;
        StringBuilder expanded = new StringBuilder();

        // 处理三个颜色分量
        for (int i = 0; i < 3; i++) {
            char current = input.charAt(index);
            if (current == '0') {
                // 当前分量是00的情况
                expanded.append("00");
                index++;
            } else {
                // 正常分量处理
                expanded.append(current).append(input.charAt(index + 1));
                index += 2;

            }
        }
        return "0x" + expanded;
    }
}